/**************************************************
*
*
  * File Name          : config.c
  * Description        : 本文档包含系统运行参数和设置参数的定义源文件
*
***************//////////////////////////////////////////////


#include "Config.h"




/*

	全局运行参数
	
*/



ConfigDateRunDef		*RunDataConfig;
ConfigDateSetDef		*SetDataConfig;

ConfigDateSaveDef		ConfigeDateRead;
/*

	出厂默认参数
	
*/
const ConfigDateSaveDef ConfigDataSave=
{
	0x5555,
	
	{
		//ModemSetDef 系统设置参数
		{
			254,
			0,
		},
		0,
		0,
		0,
		0,
		//ServeUrlDef服务器参数
		{
			"dev_cn.devcld.com",
			3939,
			NET_TCP
		},
		//ServeUrlDef服务器参数
//		{
//			"www.inleeq.com",
//			9999,
//			NET_TCP
//		},		

		
		//NetSetDef注册心跳参数
		{
			LOGIN_NONE,
			
			HEART_NONE,
			0,
			
			"*DTU*1000111120050801#",
			"*DTU*1000111120050801#",
			"89860421151983511255",
			"861193040019052",
			
		},
		//MqcpDeviceDefMQCP协议数据
		{
			26517,
			395199886,
			{0x99, 0xBD, 0xC9, 0xC4, 0x18, 0x30, 0xEE, 0xA2, 0xFD, 0x90, 0x04, 0xC0, 0xC6, 0xA9, 0x43, 0x19}
		},
		//sTimeListWorkDef定时功能
		{
			0,
			20,
			{0},
		},
	},
	
	0xaaaa
};



/*

	启动后的参数初始化
	void ConfigInit(void)
	传入参数：void
	返回参数：void

*/

void ConfigInit(void)
{
	
	ConfigDateSaveDef *ConfigDataFlash=(ConfigDateSaveDef *)WRITE_ADDR_CFG;
	ConfigeDateRead=*ConfigDataFlash;
	
	if((0x5555!=ConfigeDateRead.BeginFlag)||(0xaaaa!=ConfigeDateRead.EndFlag))
	{
		E_CFG_WriteFlash((uint8_t *)(&ConfigDataSave),WRITE_ADDR_CFG,sizeof(ConfigDateSaveDef));
		ConfigeDateRead=ConfigDataSave;
	}
	
	RunDataConfig=(ConfigDateRunDef	*)(&E_MBUS_DATA_ALL.mbus_wrreg0[0]);
	SetDataConfig=(ConfigDateSetDef	*)(&(E_MBUS_DATA_ALL.mbus_wrreg0[sizeof(ConfigDateRunDef)/2]));
	
	*SetDataConfig=ConfigeDateRead.SaveDateDef;
	
	E_MBUS_DATA_ALL.mbus_id=SetDataConfig->ModemSet.SlaveID;
	
	
	return;
}


uint8_t ConfigSave(void)
{
	if(0!=memcmp(SetDataConfig,&(ConfigeDateRead.SaveDateDef),sizeof(ConfigDateSetDef)))
	{
		
		ConfigeDateRead.SaveDateDef=*SetDataConfig;
		E_CFG_WriteFlash((uint8_t *)(&ConfigeDateRead),WRITE_ADDR_CFG,sizeof(ConfigDateSaveDef));
		return 1;
	}
	else
		return 0;
}


/****
*
*  SAVE Process
*
****/

void SaveProcess(void)
{
	if(1==SetDataConfig->ModemSet.Save)
	{
		HAL_Delay(50);
		
		SetDataConfig->ModemSet.Save=0;
		ConfigSave();
	}
}

//////////////////////////////


//////////////////////////




